import axios from "axios";
import { message } from "ant-design-vue";

const service = axios.create({
  //默认请求路径
  baseURL: JSON.parse(process.env.VUE_APP_PROXY)
    ? null
    : process.env.VUE_APP_BASE_URL,

  //请求多久延时
  timeout: 5000,
  // 延时后重新请求次数
  retry: 3,
  //延时后重新请求间隔
  retryInterval: 1000,
  // 设置请求头
  headers: {
    "Content-Type": "application/json",
  },
});
// 请求拦截---请求前
service.interceptors.request.use(
  (config) => {
    return config;
  },
  (error) => {}
);

// 请求拦截---请求后
service.interceptors.response.use(
  (response) => {
    const res = response.data;

    //请求成功的code
    const succeedCode = [9];
    //成功且需要提示的code
    const msgCode = [6, 15, 13];
    // 根据后台的code判断请求状态
    if (succeedCode.includes(res.message.code)) {
      return res;
    } else if (msgCode.includes(res.message.code)) {
      message.success(res.message.msg || "success");
      return res;
    } else {
      message.warning(res.message.msg || "warning");
      //上线后这个可以不需要
      return Promise.reject(res.message);
    }
  },
  (error) => {
    message.error(error.message || "error");
    return Promise.reject(error);
  }
);

export default service;
